1. Field of the Invention
The present invention relates generally to the field of computer systems, and specifically, to a data manipulation instruction for enhancing value and efficiency of performing complex arithmetic instructions.
2. Background Information
To improve the efficiency of multimedia applications, as well as other applications with similar characteristics, a Single Instruction, Multiple Data (SIMD) architecture has been implemented in computer systems to enable one instruction to operate on several operands simultaneously, rather than on a single operand. In particular, SIMD architectures take advantage of packing many data elements within one register or memory location. With parallel hardware execution, multiple operations can be performed on separate data elements with one instruction, resulting in a significant performance improvement. The SIMD architecture applies to both integer and floating-point operands.
The SIMD data format of packing data elements within a register or memory location is a natural format for representing complex data. That is, first and second data elements of an operand may comprise real and imaginary components of the complex number, respectively. Many applications require the multiplication of complex numbers such as, for example, signal processing applications. To increase the efficiency of these applications, it is therefore desirable to reduce the number of instructions required for performing a complex multiply.
The present invention comprises a method and apparatus for performing complex arithmetic. In one embodiment, a method comprises decoding a single instruction, and in response to decoding the single instruction, moving a first operand occupying lower order bits of a first storage area to higher order bits of a result, moving a second operand occupying higher order bits of a second storage area to lower order bits of the result, and negating one of the first and second operands of the result.